<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>对象作业</title>
  </head>
  <body>
    <script>
      //～加油～
      /* 
        1. 创建一个对象有那两种方式
         */
        var obj ={}  //字面量方式创建对象

        var obj = new Object()  //内置构造函数创建对象

      /* 
        2. 请举例说明，对象的基本操作的两种语法
        */
       /* 点语法： var obj ={}；   增加：obj.name="jack";   删除：delete obj.name;  修改：obj.name="rose";  查找：console.log(obj.name);

          数组关联语法：var obj = {};  增加：obj["name"]="张三"； 删除：delete obj["name"];  修改：obj["name"]="李四"；  查：console.log(obj["name"]);   可以和点语法混着用
          
        */

      /*
        3.对象的curd，两种语法有什么区别 
        */
       /* 点语法，不管如何，都不能和变量产生联系，始终都是访问对象的某一个准确的键名 。
          数组关联语法，如果在[]内写的是一个变量，那么会把变量解析出来填充在[]里面，对象和变量产生了关联*/

      /* 
        4.对象怎么遍历？那个是键名，那个是键值
        */
       /* 用for in 语法：for(var 变量名 in 对象名){} 
           var obj ={
            name:"jack",
            age:18,
            gender:"男"
           };
           for (var k in obj){

            console.log(k,obj[k]);

           }
           k是键名，obj[k]是键值
       */

      /* 
        5.简单和复杂数据类型在存储上的区别是什么？
        那赋值和比较上的区别又是什么？
        */
       //简单数据类型：存在栈里面。 复杂数据类型（引用数据类型）：栈里面存放地址，真实的数据存放在堆里面

      /* 
        6.如下代码会打印什么？请写出分析过程
        */
      //   var b = "boy";
      //   console.log(b); ----------boy
      //   function fighting() {
      //     console.log(a);---------undefined
      //     console.log(c);---------undefined
      //     if (a === "apple") {
      //       a = "Alice";
      //     } else {
      //       a = "Ada";
      //     }
      //     console.log(a);----------Ada
      //     var a = "Andy";
      //     middle();
      //     function middle() {
      //       console.log(c++);---------NaN
      //       var c = 100;
      //       console.log(++c);----------101
      //       small();
      //       function small() {
      //         console.log(a);------------Andy
      //       }
      //     }
      //     var c = (a = 88);
      //     function bottom() {
      //       b = "baby";------没有var前缀，所以window下的b变成baby
      //       console.log(b);-------baby
      //     }
      //     bottom();
      //   }
      //   fighting();
      //   console.log(b);----------baby
    </script>
  </body>
</html>
